package com.xf.enums;

import java.util.ArrayList;
import java.util.List;

/**
 * 导入学生模板类
 *
 * @author fengjinhao
 * @date 2021/9/18 10:26
 */

public enum  ImportSudentEnum {

    /**
     * 商品名称
     */
    NAME("姓名", "name", "^$|^.{1,50}$", "商品名称长度不大于50"),

    /**
     * 规格型号
     */
    AGE("年龄", "age", "^$|^.{0,50}$", "年龄长度不大于50");


    /**
     * 表头字段
     */
    private String key;

    /**
     * 数据库对应字段
     */
    private String value;

    /**
     * 字段格式正则
     */
    private String grep;

    /**
     * 字段格式正则
     */
    private String msg;

    /**
     * 有参构造
     * @param key 表头字段
     * @param value 数据库对应字段
     * @param grep 字段格式正则
     * @param msg 说明
     */
    ImportSudentEnum(String key, String value, String grep, String msg) {
        this.key = key;
        this.value = value;
        this.grep = grep;
        this.msg = msg;
    }

    /**
     * 表头与表字段映射关联
     *
     * @param key 表头
     * @return string
     */
    public static String getGrepByKey(String key) {
        ImportSudentEnum[] importSudentEnums = values();
        for (ImportSudentEnum importSudentEnum : importSudentEnums) {
            if (importSudentEnum.key.equals(key)) {
                return importSudentEnum.grep;
            }
        }
        return null;
    }

    /**
     * 表头与表字段映射关联
     *
     * @param key 表头
     * @return string
     */
    public static String getMsgByKey(String key) {
        ImportSudentEnum[] importSudentEnums = values();
        for (ImportSudentEnum importSudentEnum : importSudentEnums) {
            if (importSudentEnum.key.equals(key)) {
                return importSudentEnum.msg;
            }
        }
        return null;
    }
    /**
     * 表头与表字段映射关联
     *
     * @param key 表头
     * @return string
     */
    public static String getValueByKey(String key) {
        ImportSudentEnum[] importSudentEnums = values();
        for (ImportSudentEnum importSudentEnum : importSudentEnums) {
            if (importSudentEnum.key.equals(key)) {
                return importSudentEnum.value;
            }
        }
        return null;
    }

    /**
     * 表头字段埋点
     *
     * @return
     */
    public static List<String> getEnumList() {
        List<String> list = new ArrayList<>();
        ImportSudentEnum[] importSudentEnums = values();
        for (ImportSudentEnum importSudentEnum : importSudentEnums) {
            list.add(importSudentEnum.key);
        }
        return list;
    }

    public String getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}
